package mydsl;

import java.util.Iterator;

public interface Tree<E> extends Container<E>{
	/**
	 * 获得根节点
	 */
	Position<E> root();
	/**
	 * 将树中某位置元素置为新值，返回原值
	 * @param v 位置
	 * @param e 新元素
	 * @return
	 */
	E replace(Position<E> v, E e);
	
	Position<E> parent(Position<E> v);

	Iterator<Position<E>> children(Position<E> v);
	
	boolean isInternal(Position<E> v);
	boolean isExternal(Position<E> v);
}
